PivotBoss Outside Reversal SetupPATTERN SUMMARY
1. The engulfing bar of a bullish outside reversal setup has a low that is below the prior bar's low (L < L ) and a
close that is above the prior bar's high (C > H ).
2. The engulfing bar of a bearish outside reversal setup has a high that is above the prior bar's high (H > H )
and a close that is below the prior bar's low (C < L ).
3. The engulfing bar is usually 5 to 25 percent larger than the size of the average bar in the lookback period.
PATTERN PSYCHOLOGY
The power behind this pattern lies in the psychology behind the traders involved in this setup. If you have
ever participated in a breakout at support or resistance only to have the market reverse sharply against you, then
you are familiar with the market dynamics of this setup. What exactly is going on at these levels? To understand
this concept is to understand the outside reversal pattern. Basically, market participants are testing the waters
above resistance or below support to make sure there is no new business to be done at these levels. When no
initiative buyers or sellers participate in range extension, responsive participants have all the information they
need to reverse price back toward a new area of perceived value.
As you look at a bullish outside reversal pattern, you will notice that the current bar's low is lower than the
prior bar's low. Essentially, the market is testing the waters below recently established lows to see if a downside
follow-through will occur. When no additional selling pressure enters the market, the result is a flood of buying
pressure that causes a springboard effect, thereby shooting price above the prior bar's highs and creating the
beginning of a bullish advance.
If you recall the child on the trampoline for a moment, you'll realize that the child had to force the bounce
mat down before he could spring into the air. Also, remember Jennifer the cake baker? She initially pushed price
to $20 per cake, which sent a flood of orders into her shop. The flood of buying pressure eventually sent the price
of her cakes to $35 apiece. Basically, price had to test the $20 level before it could rise to $35.
Let's analyze the outside reversal setup in a different light for a moment. One of the reasons I like this setup
is because the two-bar pattern reduces into the wick reversal setup, which we covered earlier in the chapter. If
you are not familiar with candlestick reduction, the idea is simple. You are taking the price data over two or more
candlesticks and combining them to create a single candlestick. Therefore, you will be taking the open, high, low,
and close prices of the bars in question to create a single composite candlestick.
Take a look at Figure 2.13, which illustrates the candlestick reduction of the outside reversal setup.
Essentially, taking the highest high and the lowest low over the two-bar period gives you the range of the
composite candlestick. Then, taking the opening price of the first candle and the closing price of the last candle
will finish off the composite candlestick. Depending on the structure of the bars of the outside reversal setup, the
result of the candlestick reduction will usually be the transformation into a wick reversal setup, which we know to
be quite powerful. Therefore, in many cases the physiology of the outside reversal pattern basically demonstrates
the inherent psychological traits of the wick reversal pattern. This is just another level of analysis that reinforces
my belief in the outside reversal setup.
Buscar en scripts para "high low"
Multi-Timeframe Price Levels# Multi-Timeframe Price Levels Indicator
## What This Script Does
This Pine Script indicator displays key horizontal price levels on your TradingView chart to help you identify important support and resistance zones. Think of it as having multiple "reference lines" that show where price has been and where it might react.
## The Price Levels You'll See
**🟣 Yesterday's Levels (Purple Lines)**
- Yesterday's High, Low, and Close
- These often act as support/resistance the next trading day
- Traders watch to see if price holds above/below these levels
**🟢🔴 Premarket Levels (Green/Red Circles)**
- High and Low from premarket trading (4:00 AM - 9:30 AM)
- Shows where institutional traders were active before market open
- Only appears if there was actual premarket activity
**🔵 First 5-Minute Levels (Blue Lines)**
- High and Low from the first 5 minutes of trading (9:30-9:35 AM)
- Locks in at 9:35 AM and doesn't change for the rest of the day
- Popular "opening range" levels many day traders use
**🟠 First 15-Minute Levels (Orange Lines)**
- High and Low from the first 15 minutes of trading (9:30-9:45 AM)
- Locks in at 9:45 AM and stays fixed all day
- Broader opening range for swing traders
**🟢🔴 Today's Levels (Green/Red Thick Lines)**
- Current day's high and low
- Updates in real-time as new highs/lows are made
- The most important current support/resistance levels
## Why These Levels Matter
- **Support/Resistance**: Price often bounces off these levels
- **Breakout Signals**: When price breaks through, it can signal strong moves
- **Risk Management**: Use them to set stop losses and profit targets
- **Context**: Understand where price has been to predict where it might go
## Customization Options
- **Toggle any level on/off** - Only show what you need
- **Adjust line thickness** - Make important levels stand out more
- **Change colors** - Match your chart theme
- **Set session times** - Adjust for different time zones
## Perfect For
- Day traders looking for intraday levels
- Swing traders identifying key zones
- Anyone wanting clean, automated support/resistance lines
- Traders who like multiple timeframe analysis
The script automatically updates daily and requires no manual drawing - just apply it and get instant professional-level price level analysis!
Candle Suite PRO – Engulf + Pin + Regime Filters + Trigger//@version=5
indicator("Candle Suite PRO – Engulf + Pin + Regime Filters + Trigger", overlay=true, max_labels_count=500)
//===================== Inputs =====================
grpPtn = "Patterns"
useEngulf = input.bool(true, "Enable Engulfing", group=grpPtn)
usePin = input.bool(true, "Enable Pin Bar", group=grpPtn)
pinRatio = input.float(2.0, "PinBar shadow >= body ×", group=grpPtn, step=0.1, minval=1)
minBodyP = input.float(0.15, "Min Body% of Range (0~1)", group=grpPtn, step=0.01, minval=0, maxval=1)
coolBars = input.int(3, "Cooldown bars", group=grpPtn, minval=0)
grpReg = "Regime Filters"
useHTF = input.bool(true, "Use HTF EMA50 Filter", group=grpReg)
htfTF = input.timeframe("60", "HTF timeframe", group=grpReg) // 5m/15m → 60 권장
useADX = input.bool(true, "Use ADX Trend Filter", group=grpReg)
adxLen = input.int(14, "ADX Length", group=grpReg, minval=5)
adxMin = input.int(18, "ADX Min Threshold", group=grpReg, minval=5)
useVOL = input.bool(true, "Use Volume Filter (> SMA×k)",group=grpReg)
volMult = input.float(1.10, "k for Volume", group=grpReg, step=0.05)
emaPinchPc = input.float(0.15, "No-Trade if |EMA20-50| < %", group=grpReg, step=0.05)/100.0
maxDistATR = input.float(1.5, "No-Trade if |Close-EMA20| > ATR×", group=grpReg, step=0.1)
useVWAP = input.bool(true, "Require close above/below VWAP", group=grpReg)
//===================== Helpers ====================
ema20 = ta.ema(close, 20)
ema50 = ta.ema(close, 50)
atr14 = ta.atr(14)
vwap = ta.vwap(hlc3)
rng = high - low
body = math.abs(close - open)
upper = high - math.max(open, close)
lower = math.min(open, close) - low
bull = close > open
bear = close < open
bodyOK = rng > 0 ? (body / rng) >= minBodyP : false
//===================== Patterns ===================
prevOpen = open
prevClose = close
prevBull = prevClose > prevOpen
prevBear = prevClose < prevOpen
bullEngulf_raw = useEngulf and prevBear and bull and (open <= prevClose) and (close >= prevOpen) and bodyOK
bearEngulf_raw = useEngulf and prevBull and bear and (open >= prevClose) and (close <= prevOpen) and bodyOK
bullPin_raw = usePin and (lower >= pinRatio * body) and (upper <= body) and bodyOK // Hammer
bearPin_raw = usePin and (upper >= pinRatio * body) and (lower <= body) and bodyOK // Shooting Star
//================= Regime & No-trade ===============
// HTF trend (EMA50 on higher TF)
emaHTF50 = request.security(syminfo.tickerid, htfTF, ta.ema(close, 50))
htfLong = not useHTF or close > emaHTF50
htfShort = not useHTF or close < emaHTF50
// ADX (manual, version-safe)
len = adxLen
upMove = high - high
downMove = low - low
plusDM = (upMove > downMove and upMove > 0) ? upMove : 0.0
minusDM = (downMove > upMove and downMove > 0) ? downMove : 0.0
trur = ta.rma(ta.tr(true), len)
plusDI = 100 * ta.rma(plusDM, len) / trur
minusDI = 100 * ta.rma(minusDM, len) / trur
dx = 100 * math.abs(plusDI - minusDI) / math.max(plusDI + minusDI, 1e-10)
adxVal = ta.rma(dx, len)
trendOK = not useADX or adxVal >= adxMin
// Volume
volOK = not useVOL or (volume >= ta.sma(volume, 20) * volMult)
// Alignment & slope
slopeUp = ema20 > ema20
slopeDown = ema20 < ema20
alignLong = ema20 > ema50 and slopeUp
alignShort = ema20 < ema50 and slopeDown
// Chop / distance / VWAP
pinch = math.abs(ema20 - ema50) / close < emaPinchPc
tooFar = math.abs(close - ema20) / atr14 > maxDistATR
vwapOKL = not useVWAP or close > vwap
vwapOKS = not useVWAP or close < vwap
//================= Final Setups ====================
longSetup_raw = bullEngulf_raw or bullPin_raw
shortSetup_raw = bearEngulf_raw or bearPin_raw
longSetup = longSetup_raw and alignLong and htfLong and trendOK and volOK and not pinch and not tooFar and vwapOKL
shortSetup = shortSetup_raw and alignShort and htfShort and trendOK and volOK and not pinch and not tooFar and vwapOKS
// Trigger: 다음 봉이 전봉의 고/저 돌파 + 종가 확인
longTrig = longSetup and high > high and close > ema20
shortTrig = shortSetup and low < low and close < ema20
// Cooldown & final signals
var int lastLong = na
var int lastShort = na
canLong = na(lastLong) or (bar_index - lastLong > coolBars)
canShort = na(lastShort) or (bar_index - lastShort > coolBars)
finalLong = longTrig and canLong
finalShort = shortTrig and canShort
if finalLong
lastLong := bar_index
if finalShort
lastShort := bar_index
//==================== Plots ========================
plot(ema20, "EMA 20", color=color.new(color.orange, 0))
plot(ema50, "EMA 50", color=color.new(color.blue, 0))
plot(useVWAP ? vwap : na, "VWAP", color=color.new(color.purple, 0))
plotshape(finalLong, title="LONG ▶", style=shape.labelup, location=location.belowbar, text="Long▶", color=color.new(color.blue, 0), size=size.tiny)
plotshape(finalShort, title="SHORT ▶", style=shape.labeldown, location=location.abovebar, text="Short▶", color=color.new(color.red, 0), size=size.tiny)
// Alerts
alertcondition(finalLong, "LONG ▶", "Long trigger")
alertcondition(finalShort, "SHORT ▶", "Short trigger")
// 시각적 노트레이드 힌트
bgcolor(pinch ? color.new(color.gray, 92) : na)
Daily/Weekly Wick (Shadow) Range📈 Detailed Guide to the Daily/Weekly Wick (Shadow) Range Indicator
This indicator is a powerful visualization tool designed to map the key price levels established during the previous trading period (either the previous day or the previous week). Instead of just showing a single line for the high and low, it highlights the entire range of the upper and lower wicks (shadows), representing the "battleground" where buyers and sellers were most active.
How It Works
The Wick (Shadow) Range indicator fetches the Open, High, Low, and Close data from the last completed daily or weekly candle and projects those levels onto your current chart. This creates two distinct colored zones.
Upper Wick (Green Zone): This area spans from the Previous High down to the top of the Previous Candle's Body. It visually represents the territory where sellers successfully pushed the price down from its peak. This entire zone can be considered a resistance area.
Lower Wick (Red Zone): This area spans from the bottom of the Previous Candle's Body down to the Previous Low. It shows where buyers stepped in to defend a price level and push it back up. This entire zone can be considered a support area.
How to Use It in Your Trading
This indicator isn't meant to give direct buy or sell signals on its own. Instead, it provides crucial context about market structure. Here are several ways to incorporate it into your strategy:
1. Identifying Key Support & Resistance
This is the indicator's primary function. The most significant levels are:
Key Resistance: The top edge of the green zone (the previous period's high).
Key Support: The bottom edge of the red zone (the previous period's low).
Look for the current price to react when it approaches these boundaries. These are high-probability areas for price to pause or reverse.
2. Watching for Price Rejection (Reversal Trading)
The colored zones are perfect for spotting rejection signals.
Bearish Rejection 📉: If the current price enters the green zone but fails to stay there, closing back below it (often forming a new wick), it's a strong sign that sellers are still in control at that level. This can be an excellent entry signal for a short position.
Bullish Rejection 📈: If the current price dips into the red zone and is quickly bought back up, it shows that buyers are actively defending that area. This can be a great entry signal for a long position.
3. Confirming Breakouts (Trend Trading)
The zones also help validate breakouts.
Bullish Breakout: If the price pushes decisively through the entire green zone and closes above the previous high, it signals that the previous resistance has been broken and the trend may continue upward.
Bearish Breakdown: If the price falls decisively through the entire red zone and closes below the previous low, it confirms that support has failed and the price may continue downward.
4. Setting Context with Timeframes
Weekly Setting: Use the "Weekly" option to identify major, significant support and resistance levels that can influence the market for the entire week. These are powerful levels for swing trading.
Daily Setting: Use the "Daily" option for intraday trading. The previous day's high and low are critical pivot points that many day traders watch.
⚙️ Indicator Settings
The indicator has one simple setting, which you can access by clicking the gear icon ⚙️ next to its name on the chart.
Select Wick Timeframe: This dropdown menu allows you to switch the indicator's calculation between the Daily and Weekly timeframe instantly.
Higher High Lower Low Higher High Lower Low 🦉{Phanchai} — TradingView Description
Structure detector with dynamic Support/Resistance, customizable labels, and ready-made alerts (Pine v6).
This script marks market structure turning points — HH (Higher High), HL (Higher Low), LH (Lower High), LL (Lower Low) — and builds segmented Support/Resistance lines from those turns. Labels and colors are fully customizable and the script ships with multiple alert conditions.
What it does
Detects swing pivots using left/right bar windows, then classifies each confirmed swing as HH/HL/LH/LL.
Plots compact labels at the confirmed pivot bars with tooltips (English).
Derives dynamic Support / Resistance : every time structure flips, the previous level is closed and a new segment starts, extending to the right .
Provides alert conditions for any label and for specific first-occurrence shifts (e.g., first HH after a bearish label).
How it works (in short)
A pivot high/low confirms only after Right Bars candles have closed; labels and S/R appear at that confirmation bar.
An internal backbone (zigzag-like) is built from confirmed pivots, with light consistency checks to avoid contradictory sequences.
Structure rules compare the recent five pivots (A…E) to decide HH/HL/LH/LL.
S/R is updated from structure: e.g., in an up leg, new HLs refresh Support; in a down leg, new LHs refresh Resistance.
Alerts included
Any structure label (HH/HL/LH/LL) — Fires on any new label.
First LL after HL/HH — First bearish break after a bullish label.
First HH after LL/LH — First bullish break after a bearish label.
LL or HL formed — Any low-side label.
LH or HH formed — Any high-side label.
HL formed
HH formed
LL formed
LH formed
How to use (quick start)
Add the indicator to your chart.
Choose Left/Right Bars for your timeframe (e.g., 5–10 for intraday; larger for higher timeframes).
Pick your label colors/sizes and S/R style.
Right-click the chart → Add alert… → Condition: this indicator → select the desired alert.
Notes & tips
Because pivots require Right Bars to confirm, labels and S/R appear with a natural delay of that many bars. This avoids repainting.
Raising Left/Right Bars reduces noise and increases the average distance between pivots; lowering them increases sensitivity.
Structure is strict: sometimes you may see two HL (or two LH) in a row if the intermediate opposite swing didn’t qualify as HH/LH (or LL/HL).
S/R segments are drawn with line objects ; they are controlled via Inputs (style/width/color), not the Style tab.
This tool highlights structure; it’s not a standalone entry/exit system. Combine with volume, trend, or risk management rules.
Built with Pine v6. Clean, compact labels; segmented S/R that updates only on confirmed changes; comprehensive alerts ready for automation.
7:00-9:30 ET High/LowThis indicator is designed to identify and plot the highest and lowest price levels within the 7:00 AM to 9:30 AM Eastern Time (ET) trading window. These levels are then extended throughout the trading day, providing clear visual references for potential support and resistance derived from the early morning price action.
Core Functionality
The script defines a specific trading session (7:00-9:30 ET) and tracks the highest high and lowest low price reached during that time. Once the session is over, these high and low lines remain on the chart for the rest of the day, acting as key levels for traders to watch. At the start of each new trading day, the indicator resets, clearing the previous day's lines and drawing new ones based on the current day's morning session.
Features and Customization
This indicator is fully customizable through the settings menu, allowing you to tailor the appearance to perfectly suit your chart layout.
Session High Line:
Customize the color, width, and line style (Solid, Dashed, Dotted).
Session High Label:
Set your own custom label text (e.g., "Morning High").
Customize the label's background color.
Customize the label's text color.
Adjust the text size.
Session Low Line:
Customize the color, width, and line style (Solid, Dashed, Dotted).
Session Low Label:
Set your own custom label text (e.g., "Morning Low").
Customize the label's background color.
Customize the label's text color.
Adjust the text size.
RSI Divergence + Hidden RSI Divergence + Hidden (TV-like pairing, final)
What it does
This indicator plots RSI and automatically detects both regular and hidden divergences by pairing RSI pivots with price pivots. It supports a TradingView-like loose pairing (within a user-defined bar tolerance) and a strict same-bar pairing. Detected signals are drawn with lines and optional labels on the RSI pane for quick visual verification.
Divergence logic
Regular Bullish (label: Bull)
Price makes a lower low while RSI makes a higher low → potential upward reversal.
Regular Bearish (label: Bear)
Price makes a higher high while RSI makes a lower high → potential downward reversal.
Hidden Bullish (label: H_Bull)
Price makes a higher low while RSI makes a lower low → trend-continuation bias upward.
Hidden Bearish (label: H_Bear)
Price makes a lower high while RSI makes a higher high → trend-continuation bias downward.
All conditions use pivot-to-pivot comparisons with optional equality tolerance for price and RSI to reduce false “equal” mismatches.
Pairing modes
TV-like
Pairs the latest price and RSI pivots if their pivot bars occur within ±tolBars.
A lightweight “pending” buffer allows pairing a newly detected pivot with a recent opposite pivot that arrived a few bars earlier/later (within tolerance).
Same Bar
Price and RSI pivots must occur on the exact same bar to form a pair.
Key inputs
RSI Source & Length: srcRsi, rsiLen (default 14). RSI line and reference levels (70/50/30) can be shown/hidden.
Pivot Window: leftBars, rightBars for both price and RSI pivots.
Pairing: pairMode = TV-like or Same Bar; tolBars for bar tolerance (TV-like only).
Price Pivot Basis: priceMode = High/Low (default) or Close.
Equality Tolerance:
allowEqual (use >=/<=),
priceEpsTks (ticks) for price equality slack,
rsiEps (points) for RSI equality slack.
Visibility: showRSI, showRegular, showHidden, showLabels.
Visuals
Lines (on RSI):
Regular Bearish: red
Regular Bullish: lime
Hidden Bearish: orange
Hidden Bullish: teal
Labels (optional): "Bear", "Bull", "H_Bear", "H_Bull" placed on the RSI series at the second pivot.
Alerts
Four alert conditions are provided and fire when the corresponding divergence is confirmed:
Bear (Regular)
Bull (Regular)
H_Bear (Hidden)
H_Bull (Hidden)
Notes & tips
Divergences are evaluated only when both price and RSI pivots exist and can be paired under the selected mode.
Pivot sensitivity: smaller leftBars/rightBars → earlier but noisier signals; larger values → fewer, more stable pivots.
Tolerance: If you miss valid setups because pivots land a few bars apart, use TV-like with a small tolBars (e.g., 1–2). If you prefer stricter confirmation, use Same Bar.
Equality slack: Use priceEpsTks and rsiEps to avoid rejecting near-equal highs/lows due to tiny differences.
Works on any symbol/timeframe; as with all divergence tools, treat signals as context—combine with trend, structure, and risk management.
Volume 2.0Volume with standard deviations.
Helps to identify moderately high/low volume and very high/low volume.
Low volume indicates less market participation. High volume indicates higher market participation.
It forecasts potential changes of sentiment.
Volume with standard deviations (n=14).
Helps to identify moderately high/low volume and very high/low volume. Low volume indicates less market participation. High volume indicates higher market participation.
It forecasts potential changes of sentiment. This indicator has to be used with others. It is an adjunct tool, but a powerful one.
NB:
My previous version "Volume" violated the Pine Code house rules, so it got shielded from public view. This is my first experience with writing in Pine Code and publishing. I suspect it was because I didn't publish with a clean chart without other indicators added. My apologies in advance if version 2.0 is again another violation, which will then get shielded again. I am only publishing out of good will to share that's all.
Algo + Trendlines :: Medium PeriodThis indicator helps me to avoid overlooking Trendlines / Algolines. So far it doesn't search explicitly for Algolines (I don't consider volume at all), but it's definitely now already not horribly bad.
These are meant to be used on logarithmic charts btw! The lines would be displayed wrong on linear charts.
The biggest challenge is that there are some technical restrictions in TradingView, f. e. a script stops executing if a for-loop would take longer than 0.5 sec.
So in order to circumvent this and still be able to consider as many candles from the past as possible, I've created multiple versions for different purposes that I use like this:
Algo + Trendlines :: Medium Period : This script looks for "temporary highs / lows" (meaning the bar before and after has lower highs / lows) on the daily chart, connects them and shows the 5 ones that are the closest to the current price (=most relevant). This one is good to find trendlines more thoroughly, but only up to 4 years ago.
Algo + Trendlines :: Long Period : This version looks instead at the weekly charts for "temporary highs / lows" and finds out which days caused these highs / lows and connects them, Taking data from the weekly chart means fewer data points to check whether a trendline is broken, which allows to detect trendlines from up to 12 years ago! Therefore it misses some trendlines. Personally I prefer this one with "Only Confirmed" set to true to really show only the most relevant lines. This means at least 3 candle highs / lows touched the line. These are more likely stronger resistance / support lines compared to those that have been touched only twice.
Very important: sometimes you might see dotted lines that suddenly stop after a few months (after 100 bars to be precise). This indicates you need to zoom further out for TradingView to be able to load the full line. Unfortunately TradingView doesn't render lines if the starting point was too long ago, so this is my workaround. This is also the script's biggest advantage: showing you lines that you might have missed otherwise since the starting bars were outside of the screen, and required you to scroll f. e back to 2015..
One more thing to know:
Weak colored line = only 2 "collision" points with candle highs/lows (= not confirmed)
Usual colored line = 3+ "collision" points (= confirmed)
Make sure to move this indicator above the ticker in the Object Tree, so that it is drawn on top of the ticker's candles!
More infos: www.reddit.com
Algo + Trendlines :: Long PeriodThis indicator helps me to avoid overlooking Trendlines / Algolines. So far it doesn't search explicitly for Algolines (I don't consider volume at all), but it's definitely now already not horribly bad.
These are meant to be used on logarithmic charts btw! The lines would be displayed wrong on linear charts.
The biggest challenge is that there are some technical restrictions in TradingView, f. e. a script stops executing if a for-loop would take longer than 0.5 sec.
So in order to circumvent this and still be able to consider as many candles from the past as possible, I've created multiple versions for different purposes that I use like this:
Algo + Trendlines :: Medium Period : This script looks for "temporary highs / lows" (meaning the bar before and after has lower highs / lows) on the daily chart, connects them and shows the 5 ones that are the closest to the current price (=most relevant). This one is good to find trendlines more thoroughly, but only up to 4 years ago.
Algo + Trendlines :: Long Period : This version looks instead at the weekly charts for "temporary highs / lows" and finds out which days caused these highs / lows and connects them, Taking data from the weekly chart means fewer data points to check whether a trendline is broken, which allows to detect trendlines from up to 12 years ago! Therefore it misses some trendlines. Personally I prefer this one with "Only Confirmed" set to true to really show only the most relevant lines. This means at least 3 candle highs / lows touched the line. These are more likely stronger resistance / support lines compared to those that have been touched only twice.
Very important: sometimes you might see dotted lines that suddenly stop after a few months (after 100 bars to be precise). This indicates you need to zoom further out for TradingView to be able to load the full line. Unfortunately TradingView doesn't render lines if the starting point was too long ago, so this is my workaround. This is also the script's biggest advantage: showing you lines that you might have missed otherwise since the starting bars were outside of the screen, and required you to scroll f. e back to 2015..
One more thing to know:
Weak colored line = only 2 "collision" points with candle highs/lows (= not confirmed)
Usual colored line = 3+ "collision" points (= confirmed)
Make sure to move this indicator above the ticker in the Object Tree, so that it is drawn on top of the ticker's candles!
More infos: www.reddit.com
Fisher (zero-color + simple OB assist)//@version=5
indicator("Fisher (zero-color + simple OB assist)", overlay=false)
// Inputs
length = input.int(10, "Fisher Period", minval=1)
pivotLen = input.int(3, "Structure pivot length (SMC-lite)", minval=1)
showZero = input.bool(true, "Show Zero Line")
colPos = input.color(color.lime, "Color Above 0 (fallback)")
colNeg = input.color(color.red, "Color Below 0 (fallback)")
useOB = input.bool(true, "Color by OB proximity (Demand below = green, Supply above = red)")
showOBMarks = input.bool(true, "Show OB markers")
// Fisher (MT4-style port)
price = (high + low) / 2.0
hh = ta.highest(high, length)
ll = ta.lowest(low, length)
rng = hh - ll
norm = rng != 0 ? (price - ll) / rng : 0.5
var float v = 0.0
var float fish = 0.0
v := 0.33 * 2.0 * (norm - 0.5) + 0.67 * nz(v , 0)
v := math.min(math.max(v, -0.999), 0.999)
fish := 0.5 * math.log((1 + v) / (1 - v)) + 0.5 * nz(fish , 0)
// SMC-lite OB
ph = ta.pivothigh(high, pivotLen, pivotLen)
pl = ta.pivotlow(low, pivotLen, pivotLen)
var float lastSwingHigh = na
var float lastSwingLow = na
if not na(ph)
lastSwingHigh := ph
if not na(pl)
lastSwingLow := pl
bosUp = not na(lastSwingHigh) and close > lastSwingHigh
bosDn = not na(lastSwingLow) and close < lastSwingLow
bearishBar = close < open
bullishBar = close > open
demHigh_new = ta.valuewhen(bearishBar, high, 0)
demLow_new = ta.valuewhen(bearishBar, low, 0)
supHigh_new = ta.valuewhen(bullishBar, high, 0)
supLow_new = ta.valuewhen(bullishBar, low, 0)
// แยกประกาศตัวแปรทีละตัว และใช้ชนิดให้ชัดเจน
var float demHigh = na
var float demLow = na
var float supHigh = na
var float supLow = na
var bool demActive = false
var bool supActive = false
if bosUp and not na(demHigh_new) and not na(demLow_new)
demHigh := demHigh_new
demLow := demLow_new
demActive := true
if bosDn and not na(supHigh_new) and not na(supLow_new)
supHigh := supHigh_new
supLow := supLow_new
supActive := true
// Mitigation (แตะโซน)
if demActive and not na(demHigh) and not na(demLow)
if low <= demHigh
demActive := false
if supActive and not na(supHigh) and not na(supLow)
if high >= supLow
supActive := false
demandBelow = useOB and demActive and not na(demHigh) and demHigh <= close
supplyAbove = useOB and supActive and not na(supLow) and supLow >= close
colDimUp = color.new(colPos, 40)
colDimDown = color.new(colNeg, 40)
barColor = demandBelow ? colPos : supplyAbove ? colNeg : fish > 0 ? colDimUp : colDimDown
// Plots
plot(0, title="Zero", color=showZero ? color.new(color.gray, 70) : color.new(color.gray, 100))
plot(fish, title="Fisher", style=plot.style_columns, color=barColor, linewidth=2)
plotchar(showOBMarks and demandBelow ? fish : na, title="Demand below", char="D", location=location.absolute, color=color.teal, size=size.tiny)
plotchar(showOBMarks and supplyAbove ? fish : na, title="Supply above", char="S", location=location.absolute, color=color.fuchsia, size=size.tiny)
alertcondition(ta.crossover(fish, 0.0), "Fisher Cross Up", "Fisher crosses above 0")
alertcondition(ta.crossunder(fish, 0.0), "Fisher Cross Down", "Fisher crosses below 0")
Untouched ExtremesWhat it is
Untouched Extremes plots horizontal levels at green-candle highs and red-candle lows. Each level is considered “untouched” (clean liquidity) until price revisits it; on the first valid touch the line auto-deletes, keeping only live targets on your chart.
How it works (logic)
Bar close event
If close > open, the script draws a line at that bar’s high and extends it to the right.
If close < open, it draws a line at that bar’s low and extends it to the right.
(Optional) Perfect/almost-dojis can be classified as green or red via settings.
Touch & removal
A green-high line is removed when any later bar’s high ≥ level (optionally within a tick tolerance).
A red-low line is removed when any later bar’s low ≤ level (optionally within a tick tolerance).
You can delay deletion by N bars to make the touch visible before the line disappears.
Housekeeping
Maximum active lines per side and line styling are user-configurable.
Why it’s useful
Untouched highs/lows often coincide with resting liquidity and incomplete price probes. Tracking them helps:
Define targets and magnets price may seek.
Frame mean-reversion rotations after a failed push.
Keep the chart clean: only levels that have not been traded are displayed.
How to use it (trading idea)
Confirmation rule: Treat the line as a level/zone. Price can pierce it; wait for a clear reversal candle pattern (e.g., pin bar, engulfing, strong momentum shift) at or immediately after the touch.
Directional play:
If a bullish reversal pattern forms at/around a red-low line, the working assumption is that price will move toward the first untouched upper line (nearest green-high line above). Many traders use that as the primary target.
Conversely, if a bearish reversal pattern forms at/around a green-high line, expect rotation toward the first untouched lower line.
Risk management: Stops typically go just beyond the level or beyond the pattern’s wick. Consider a fixed R:R (e.g., 1:2) and partials at intermediate levels.
Settings
Doji handling: Choose how to classify close ≈ open bars (Green / Red / Ignore). A small equality margin (ticks) helps with rounding on some symbols.
Touch tolerance (ticks): Counts near-misses as touches if desired.
Deletion delay (bars): Wait N bars after creation before a line becomes eligible for deletion.
Max lines per side / width / colors: Keep the view readable.
Tips
Works on any symbol/timeframe; lower TFs produce more levels—adjust Max lines accordingly.
Combining with a trend filter (e.g., EMA-200), ATR distance, or volume clues can improve selectivity.
If spreads or wicks are noisy, increase tolerance slightly and/or use deletion delay to visualize touches.
Note: This tool provides structure and potential targets, not signals by itself. Always require your reversal pattern as confirmation and manage risk appropriately.
Strong Trend CandlesThis indicator highlights trend candles using a mathematically grounded method designed to identify moments when the market is truly dominated by buyers or sellers
Up-Trend Candle (UP):
The open is close to the session’s low.
The close is close to the session’s high.
This structure reflects sustained bullish control from start to finish.
Down-Trend Candle (DOWN):
The open is near the high.
The close is near the low.
This reflects clear bearish control throughout the session.
Precise Definitions Used:
UP-Trend Candle:
Open ≤ Low + 10% of range
Close ≥ High - 20% of range
DOWN-Trend Candle:
Open ≥ High - 10% of range
Close ≤ Low + 20% of range
Here, the range is simply High - Low.
Why are the thresholds different (10% vs 20%)?
This is intentional and based on how markets behave:
The opening price tends to be precise and stable in trend days. A strong trending candle usually opens very close to one end (high or low), reflecting a clean start without hesitation.
The closing price, however, often pulls back slightly before the end of the session—even during strong trends—due to profit-taking or last-minute volatility.
That’s why the close is allowed more tolerance (20%), while the open is held to a stricter threshold (10%). This balance allows the indicator to be strict enough to filter noise, yet flexible enough to capture real trends.
✅ Why this is useful
Unlike vague candle patterns like "bullish engulfing" or "marubozu," this method focuses strictly on structure and positioning, not color or subjective shape. It isolates the candles where one side clearly dominated, offering cleaner entries for breakout, continuation, or confirmation strategies.
You can use this tool to:
Spot high-momentum price action
Confirm breakouts or directional bias
Filter setups based on strong market conviction
🔹 How it works
An Up-Trend Candle is detected when the open is close to the daily low and the close is close to the daily high.
A Down-Trend Candle is detected when the open is close to the daily high and the close is close to the daily low.
The thresholds for “close to high/low” are configurable through the Open % of Range and Close % of Range inputs.
🔹 How to use it
Candles are colored according to their classification.
Colors can be customized in the settings.
This tool can be applied in any timeframe.
⚠️ Notes:
This script does not generate buy/sell signals.
It is designed to help visualize strong candles based on intraday range conditions.
ZV-Resources by ZuperView.comLibrary "zuperview"
ComputeMAValue(maType, series, period)
ComputeMAValue
@description Computes the moving average (MA) value based on the specified MA type.
Parameters:
maType (string) : (string) The type of moving average: "EMA", "SMA", "RMA", "WMA", "HMA", "VWMA", "LinReg".
series (float) : (float) The input price series (typically close).
period (simple int) : (int) The number of periods used for MA calculation.
Returns: (float) The computed MA value or `na` if maType is invalid.
ComputeATRValue(period)
ComputeATRValue
@description Computes the moving average (ATR) value based on the specified ATR type.
Parameters:
period (int) : (int) The number of periods used for MA calculation.
Returns: (float) The computed ATR value or `na` if maType is invalid.
Max(src, period)
Parameters:
src (float)
period (int)
Min(src, period)
Parameters:
src (float)
period (int)
ComputeRSIValue(src, period, smooth)
ComputeRSIValue
@description Computes the moving average (RSI) value based on the specified RSI type.
Parameters:
src (float) : (series) Input series (series float), which can be close (`close`), open (`open`), high (`high`), low (`low`), or any other price-based series.
period (int) : (int) The number of periods used for MA calculation.
smooth (int)
Returns: (float) The computed RSI value or `na` if maType is invalid.
ComputeSMMAValue(src, period)
ComputeSMMAValue
@description Computes the moving average (SMMA) value based on the specified SMMA type.
Parameters:
src (float) : (series) Input series (series float), which can be close (`close`), open (`open`), high (`high`), low (`low`), or any other price-based series.
period (int) : (int) The number of periods used for MA calculation.
Returns: (float) The computed SMMA value or `na` if maType is invalid.
ComputeStochasticValue(src, periodD, periodK, smoothingMethod, smoothingPeriod)
ComputeStochasticValue
@description Computes the moving average (SMMA) value based on the specified SMMA type.
Parameters:
src (float) : (series) Input series (series float), which can be close (`close`), open (`open`), high (`high`), low (`low`), or any other price-based series.
periodD (simple int) : (int) The number of periods used for MA calculation.
periodK (int) : (int) The number of periods used for MA calculation.
smoothingMethod (string) : (string) The type of moving average: "EMA", "SMA", "RMA", "WMA", "HMA", "VWMA", "LinReg".
smoothingPeriod (simple int) : (int) The number of periods used for MA calculation.
Returns: (float) The computed Stochastic(K, D) value or `na` if maType is invalid.
zuperviewResourcesLibrary "zuperview"
ComputeMAValue(maType, series, period)
ComputeMAValue
@description Computes the moving average (MA) value based on the specified MA type.
Parameters:
maType (string) : (string) The type of moving average: "EMA", "SMA", "RMA", "WMA", "HMA", "VWMA", "LinReg".
series (float) : (float) The input price series (typically close).
period (simple int) : (int) The number of periods used for MA calculation.
Returns: (float) The computed MA value or `na` if maType is invalid.
ComputeATRValue(period)
ComputeATRValue
@description Computes the moving average (ATR) value based on the specified ATR type.
Parameters:
period (int) : (int) The number of periods used for MA calculation.
Returns: (float) The computed ATR value or `na` if maType is invalid.
Max(src, period)
Parameters:
src (float)
period (int)
Min(src, period)
Parameters:
src (float)
period (int)
ComputeRSIValue(src, period, smooth)
ComputeRSIValue
@description Computes the moving average (RSI) value based on the specified RSI type.
Parameters:
src (float) : (series) Input series (series float), which can be close (`close`), open (`open`), high (`high`), low (`low`), or any other price-based series.
period (int) : (int) The number of periods used for MA calculation.
smooth (int)
Returns: (float) The computed RSI value or `na` if maType is invalid.
ComputeSMMAValue(src, period)
ComputeSMMAValue
@description Computes the moving average (SMMA) value based on the specified SMMA type.
Parameters:
src (float) : (series) Input series (series float), which can be close (`close`), open (`open`), high (`high`), low (`low`), or any other price-based series.
period (int) : (int) The number of periods used for MA calculation.
Returns: (float) The computed SMMA value or `na` if maType is invalid.
ComputeStochasticValue(src, periodD, periodK, smoothingMethod, smoothingPeriod)
ComputeStochasticValue
@description Computes the moving average (SMMA) value based on the specified SMMA type.
Parameters:
src (float) : (series) Input series (series float), which can be close (`close`), open (`open`), high (`high`), low (`low`), or any other price-based series.
periodD (simple int) : (int) The number of periods used for MA calculation.
periodK (int) : (int) The number of periods used for MA calculation.
smoothingMethod (string) : (string) The type of moving average: "EMA", "SMA", "RMA", "WMA", "HMA", "VWMA", "LinReg".
smoothingPeriod (simple int) : (int) The number of periods used for MA calculation.
Returns: (float) The computed Stochastic(K, D) value or `na` if maType is invalid.
FindSwingsByNeighborhood(arraySwingTop, arraySwingBottom, neighborhood)
Find Swings By Neighborhood
@description Computes the moving average (SMMA) value based on the specified SMMA type.
Parameters:
arraySwingTop (array) : (array): An array to store detected swing highs.
arraySwingBottom (array) : (array): An array to store detected swing lows.
neighborhood (int) : (int): The number of bars to consider when identifying a swing point.
Returns: none
FindSwingsByOffset(arraySwingTop, arraySwingBottom, minSwingLength)
Find Swings By Offset
@description Identifies swing points based on a minimum swing length criteria.
Parameters:
arraySwingTop (array) : (array): An array to store detected swing highs.
arraySwingBottom (array) : (array): An array to store detected swing lows.
minSwingLength (float) : (float): The minimum price movement required to qualify as a swing point.
Returns: none
SwingPoint
Fields:
Key (series int)
IsTop (series bool)
Price (series float)
BarStart (series int)
BarEnd (series int)
TimeStart (series int)
TimeEnd (series int)
Sign (series int)
Label (series label)
Pure Price Zone Flow🔎 What this indicator is
It’s a price-action-based zone indicator. Unlike moving average systems, this one relies only on:
1. Swing Highs & Swing Lows → The highest and lowest points within a recent lookback period (like "mini support & resistance").
2. ATR (Average True Range) → A volatility measure that expands the zone, making it more adaptive to different market conditions.
3. Breakouts & Retests → When price breaks above a swing high (bullish) or below a swing low (bearish), the indicator marks it and highlights the new trend.
👉 The goal is to spot clean structure shifts and define clear trend zones where traders can position themselves.
________________________________________
⚙️ How it is calculated
1. Swing High & Swing Low
o We look back len candles (default 20).
o Find the highest high (swingHigh) and the lowest low (swingLow) in that window.
o This forms the price range zone.
2. ATR Expansion
o We calculate ATR over the same len.
o Add/subtract it (multiplied by atrMult) to the zone edges to expand them.
o This ensures the zones breathe with volatility (tight in quiet markets, wide in choppy ones).
3. Mid-Zone
o Simply the average of swingHigh and swingLow.
o If price is above mid → bullish bias.
o If below mid → bearish bias.
o This gives us the trend color for candles.
4. Breakouts
o If the close crosses above swingHigh, we mark a bullish breakout with a label.
o If the close crosses below swingLow, we mark a bearish breakdown.
________________________________________
📊 How it helps traders
This indicator helps by:
1. Identifying Structure Shifts
o Many traders watch swing highs/lows for breakouts or reversals.
o This automates the process and visually confirms when structure is broken.
2. Dynamic Zone Trading
o Instead of fixed support/resistance, the ATR expansion adapts to volatility.
o This avoids false signals in high-volatility conditions.
3. Trend Bias at a Glance
o Candle coloring instantly tells you whether price is in bullish or bearish territory relative to the mid-zone.
4. Breakout Confirmation
o The labels show when a breakout has occurred, so traders can react quickly (e.g., enter with trend, wait for retest, or avoid fading moves).
________________________________________
🌍 Markets it works best in
• Crypto (Bitcoin, Ethereum, etc.): Very effective since crypto is breakout-driven and respects swing levels.
• Forex: Good for volatility-adaptive structure analysis, especially in trending pairs.
• Indices (SPX, NASDAQ, DAX, NIFTY): Useful for breakout trading during session opens or key news events.
• Commodities (Gold, Oil, Silver): Works well to define intraday ranges and breakout levels.
⚠️ Less useful in low-volatility, mean-reverting assets (like some penny stocks or sideways ranges), because breakouts may be rare or fake.
________________________________________
💡 How it adds value
• Strips away unnecessary complexity (no lagging averages).
• Focuses directly on what price is doing structurally.
• Adaptive → works across different markets & timeframes.
• Easy visualization → zones, trend coloring, breakout markers.
• Helps traders trade with the flow of the market, instead of guessing tops/bottoms.
________________________________________
👉 In short:
This indicator turns raw price action into clear, actionable zones.
It highlights when the market shifts from balance to breakout, so traders can align with momentum rather than fighting it.
BecakFloatingPanelsLibrary "BecakFloatingPanels"
Library for creating floating indicator panels with MACD, RSI, and Stochastic indicators
calculateMacd(source, fastLength, slowLength, signalLength)
Calculate MACD components
Parameters:
source (float) : Price source for calculation
fastLength (simple int) : Fast EMA period
slowLength (simple int) : Slow EMA period
signalLength (simple int) : Signal line period
Returns: MacdData MACD calculation results
calculateRsi(source, length)
Calculate RSI
Parameters:
source (float) : Price source for calculation
length (simple int) : RSI period
Returns: float RSI value
calculateStochastic(source, high, low, kLength, kSmoothing, dSmoothing)
Calculate Stochastic components
Parameters:
source (float) : Price source for calculation
high (float) : High prices
low (float) : Low prices
kLength (int) : %K period
kSmoothing (int) : %K smoothing period
dSmoothing (int) : %D smoothing period
Returns: StochData Stochastic calculation results
calculateStochSignals(stochK, stochD, overboughtLevel, oversoldLevel)
Calculate Stochastic signals
Parameters:
stochK (float) : Stochastic %K series
stochD (float) : Stochastic %D series
overboughtLevel (float) : Overbought threshold
oversoldLevel (float) : Oversold threshold
Returns: StochSignals Signal flags
calculateChartMetrics(high, low, lookbackLength)
Calculate chart range and positioning metrics
Parameters:
high (float) : High prices
low (float) : Low prices
lookbackLength (int) : Lookback period
Returns: ChartMetrics Chart positioning data
calculateMacdRange(macdLine, signalLine, histogram, safeLookback)
Calculate MACD range for normalization
Parameters:
macdLine (float) : MACD line series
signalLine (float) : Signal line series
histogram (float) : Histogram series
safeLookback (int) : Lookback period
Returns: MacdRange MACD range metrics
initVisualArrays()
Initialize visual arrays
Returns: VisualArrays Container with initialized arrays
clearVisuals(visuals)
Clear all visual elements
Parameters:
visuals (VisualArrays) : VisualArrays container
Returns: void
calculatePanelPositions(chartMetrics, oscPlacement, panelHeight, panelSpacing, centerOffset)
Calculate panel positions based on placement option
Parameters:
chartMetrics (ChartMetrics) : Chart metrics object
oscPlacement (string) : Panel placement option
panelHeight (float) : Panel height percentage
panelSpacing (float) : Panel spacing percentage
centerOffset (float) : Center offset percentage
Returns: PanelPositions Panel boundary coordinates
createPanelBackgrounds(visuals, positions, panelLeft, panelRight, showBackground, transparency)
Create panel backgrounds
Parameters:
visuals (VisualArrays) : VisualArrays container
positions (PanelPositions) : PanelPositions object
panelLeft (int) : Left boundary
panelRight (int) : Right boundary
showBackground (bool) : Show background flag
transparency (int) : Background transparency
Returns: void
drawReferenceLines(visuals, positions, chartMetrics, macdRange, dataLeft, dataRight, panelHeight, rsiOverbought, rsiOversold, stochOverbought, stochOversold)
Draw reference lines for all panels
Parameters:
visuals (VisualArrays) : VisualArrays container
positions (PanelPositions) : PanelPositions object
chartMetrics (ChartMetrics) : ChartMetrics object
macdRange (MacdRange) : MacdRange object
dataLeft (int) : Left data boundary
dataRight (int) : Right data boundary
panelHeight (float) : Panel height percentage
rsiOverbought (int) : RSI overbought level
rsiOversold (int) : RSI oversold level
stochOverbought (int) : Stochastic overbought level
stochOversold (int) : Stochastic oversold level
Returns: void
drawMacdIndicator(visuals, macdLine, signalLine, histogram, macdRange, positions, chartMetrics, barIndex, nextBarIndex, barIndexOffset, panelHeight)
Draw MACD indicator
Parameters:
visuals (VisualArrays) : VisualArrays container
macdLine (float) : MACD line series
signalLine (float) : Signal line series
histogram (float) : Histogram series
macdRange (MacdRange) : MacdRange object
positions (PanelPositions) : PanelPositions object
chartMetrics (ChartMetrics) : ChartMetrics object
barIndex (int) : Current bar index
nextBarIndex (int) : Next bar index
barIndexOffset (int) : Horizontal offset
panelHeight (float) : Panel height percentage
Returns: void
drawRsiIndicator(visuals, rsiValue, positions, chartMetrics, barIndex, nextBarIndex, barIndexOffset, panelHeight)
Draw RSI indicator
Parameters:
visuals (VisualArrays) : VisualArrays container
rsiValue (float) : RSI value
positions (PanelPositions) : PanelPositions object
chartMetrics (ChartMetrics) : ChartMetrics object
barIndex (int) : Current bar index
nextBarIndex (int) : Next bar index
barIndexOffset (int) : Horizontal offset
panelHeight (float) : Panel height percentage
Returns: void
drawStochasticIndicator(visuals, stochK, stochD, positions, chartMetrics, barIndex, nextBarIndex, barIndexOffset, panelHeight, stochOverbought, stochOversold)
Draw Stochastic indicator
Parameters:
visuals (VisualArrays) : VisualArrays container
stochK (float) : Stochastic %K series
stochD (float) : Stochastic %D series
positions (PanelPositions) : PanelPositions object
chartMetrics (ChartMetrics) : ChartMetrics object
barIndex (int) : Current bar index
nextBarIndex (int) : Next bar index
barIndexOffset (int) : Horizontal offset
panelHeight (float) : Panel height percentage
stochOverbought (int) : Overbought level
stochOversold (int) : Oversold level
Returns: void
addStochasticSignals(visuals, buySignal, sellSignal, positions, chartMetrics, currentBarIndex, barIndexOffset, panelHeight, signalIndex)
Add Stochastic buy/sell signals
Parameters:
visuals (VisualArrays) : VisualArrays container
buySignal (bool) : Buy signal series
sellSignal (bool) : Sell signal series
positions (PanelPositions) : PanelPositions object
chartMetrics (ChartMetrics) : ChartMetrics object
currentBarIndex (int) : Current bar index
barIndexOffset (int) : Horizontal offset
panelHeight (float) : Panel height percentage
signalIndex (int) : Signal index for lookback
Returns: void
setPanelLabels(macdLabel, rsiLabel, stochLabel, positions, chartMetrics, labelOffset, panelHeight, barIndexOffset)
Set panel title labels
Parameters:
macdLabel (label) : MACD label reference
rsiLabel (label) : RSI label reference
stochLabel (label) : Stochastic label reference
positions (PanelPositions) : PanelPositions object
chartMetrics (ChartMetrics) : ChartMetrics object
labelOffset (int) : Label horizontal offset
panelHeight (float) : Panel height percentage
barIndexOffset (int) : Horizontal offset
Returns: void
showDebugInfo(chartMetrics, debugMode)
Display debug information
Parameters:
chartMetrics (ChartMetrics) : ChartMetrics object
debugMode (bool) : Debug mode flag
Returns: void
ChartMetrics
Chart metrics container
Fields:
visibleHigh (series float) : Highest visible price
visibleLow (series float) : Lowest visible price
chartRange (series float) : Price range of chart
chartCenter (series float) : Center point of chart
MacdData
MACD calculation results
Fields:
macdLine (series float) : Main MACD line
signalLine (series float) : Signal line
histogram (series float) : MACD histogram
MacdRange
MACD range metrics for normalization
Fields:
highest (series float) : Highest MACD value
lowest (series float) : Lowest MACD value
BRange (series float) : Total range
StochData
Stochastic calculation results
Fields:
k_smooth (series float) : Smoothed %K line
d (series float) : %D line
StochSignals
Stochastic signals
Fields:
buySignal (series bool) : Buy signal flag
sellSignal (series bool) : Sell signal flag
PanelPositions
Panel positioning data
Fields:
macdTop (series float) : MACD panel top
macdBottom (series float) : MACD panel bottom
rsiTop (series float) : RSI panel top
rsiBottom (series float) : RSI panel bottom
stochTop (series float) : Stochastic panel top
stochBottom (series float) : Stochastic panel bottom
VisualArrays
Visual elements arrays container
Fields:
macdLines (array) : Array of MACD lines
macdHist (array) : Array of MACD histogram boxes
rsiLines (array) : Array of RSI lines
stochLines (array) : Array of Stochastic lines
stochAreas (array) : Array of Stochastic areas
stochSignals (array) : Array of Stochastic signals
panelBackgrounds (array) : Array of panel backgrounds
Multi-Band Trend LineThis Pine Script creates a versatile technical indicator called "Multi-Band Trend Line" that builds upon the concept of the popular "Follow Line Indicator" by Dreadblitz. While the original Follow Line Indicator uses simple trend detection to place a line at High or Low levels, this enhanced version combines multiple band-based trading strategies with dynamic trend line generation. The indicator supports five different band types and provides more sophisticated buy/sell signals based on price breakouts from various technical analysis bands.
Key Features
Multi-Band Support
The indicator supports five different band types:
- Bollinger Bands: Uses standard deviation to create bands around a moving average
- Keltner Channels: Uses ATR (Average True Range) to create bands around a moving average
- Donchian Channels: Uses the highest high and lowest low over a specified period
- Moving Average Envelopes: Creates bands as a percentage above and below a moving average
- ATR Bands: Uses ATR multiplier to create bands around a moving average
Dynamic Trend Line Generation (Enhanced Follow Line Concept)
- Similar to the Follow Line Indicator, the trend line is placed at High or Low levels based on trend direction
- Key Enhancement: Instead of simple trend detection, this version uses band breakouts to trigger trend changes
- When price breaks above the upper band (bullish signal), the trend line is set to the low (optionally adjusted with ATR) - similar to Follow Line's low placement
- When price breaks below the lower band (bearish signal), the trend line is set to the high (optionally adjusted with ATR) - similar to Follow Line's high placement
- The trend line acts as dynamic support/resistance, following the price action more precisely than the original Follow Line
ATR Filter (Follow Line Enhancement)
- Like the original Follow Line Indicator, an ATR filter can be selected to place the line at a more distance level than the normal mode settled at candles Highs/Lows
- When enabled, it adds/subtracts ATR value to provide more conservative trend line placement
- Helps reduce false signals in volatile markets
- This feature maintains the core philosophy of the Follow Line while adding more precision through band-based triggers
Signal Generation
- Buy Signal: Generated when trend changes from bearish to bullish (trend line starts rising)
- Sell Signal: Generated when trend changes from bullish to bearish (trend line starts falling)
- Signals are displayed as labels on the chart
Visual Elements
- Upper and lower bands are plotted in gray
- Trend line changes color based on direction (green for bullish, red for bearish)
- Background color changes based on trend direction
- Buy/sell signals are marked with labeled shapes
How It Works
Band Calculation: Based on the selected band type, upper and lower boundaries are calculated
Signal Detection: When price closes above the upper band or below the lower band, a breakout signal is generated
Trend Line Update: The trend line is updated based on the breakout direction and previous trend line value
Trend Direction: Determined by comparing current trend line with the previous value
Alert Generation: Buy/sell conditions trigger alerts and visual signals
Use Cases
Enhanced trend following strategies: More precise than basic Follow Line due to band-based triggers
Breakout trading: Multiple band types provide various breakout opportunities
Dynamic support/resistance identification: Combines Follow Line concept with band analysis
Multi-timeframe analysis with different band types: Choose the most suitable band for your timeframe
Reduced false signals: Band confirmation provides better entry/exit points compared to simple trend following
ORB & Sessions [Capitalize Labs]ORB & Sessions Indicator
The ORB & Sessions Indicator provides a structured way to analyze intraday price action by combining two well-established concepts: global trading sessions and Opening Range Breakouts (ORB). It is designed to help traders identify where liquidity forms, when volatility expands, and how price behaves around key session and range levels.
Market Sessions Framework
Displays New York, London, and Asian sessions directly on the chart.
Each session can be shown as a highlighted background zone, or with extended highs and lows for liquidity tracking.
Session highs and lows remain projected forward after the session ends, allowing traders to monitor sweeps, retests, and reactions throughout the day.
Session times are fully customizable and can be aligned with the trader’s own timezone or broker feed.
This structure helps traders place price action into context, whether during quiet Asian trading, London-driven volatility, or New York reversals.
Opening Range Breakouts (ORB)
Supports three independent ORBs, each with configurable session times.
During the defined ORB window, the indicator captures the high and low of the range and plots a live updating box.
Once the ORB closes, the range locks and projects breakout targets (T1 and T2) based on user-defined risk-to-reward multiples.
Alerts are included for breakouts of highs, lows, or target levels.
Traders can use a single ORB or multiple—for example, tracking an Asian ORB into London, or London into New York.
Visualization and Clarity
Color-coded boxes and levels for sessions and ORBs.
Labels such as “Range High” and “Range Low” ensure clarity without clutter.
Flexible display settings allow highlighting full zones, just lines, or minimal markers depending on preference.
Practical Applications
This indicator is useful for:
Liquidity and volatility analysis: Observe where session highs and lows form and how they influence later trading.
Breakout and reversal strategies: Use ORB ranges to define risk and plan target projections.
Time-based research: Explore how different session overlaps or ORBs affect markets like indices, FX, and commodities.
Risk planning: Built-in R-multiple targets provide a consistent framework for evaluating setups.
Why It’s Different
Instead of showing sessions and ORBs separately, this indicator integrates them into one framework. Traders can:
See when and where sessions open and establish range levels.
Define precise ORBs with customizable timing.
Track breakout levels and targets in real time with alerts.
The result is a clear, time-structured view of the trading day, helping traders align setups with session dynamics and opening range behavior.
This indicator does not generate buy or sell signals. It is an analytical and visualization tool, providing structure for traders to better interpret intraday price action.
Trishul Tap Signals (v6) — Liquidity Sweep + Imbalanced RetestTrishul Tap Signals — Liquidity Sweep + Imbalanced Retest
Type: Signal-only indicator (non-repainting)
Style: Price-action + Liquidity + Trend-following
Best for: Intraday & Swing Trading — any liquid market (stocks, futures, crypto, FX)
Timeframes: Any (5m–1D recommended)
Concept
The Trishul Tap setup is a liquidity-driven retest play inspired by order-flow and Smart Money Concepts.
It identifies one-sided impulse candles that also sweep liquidity (grab stops above/below a recent swing), then waits for price to retest the origin of that candle to enter in the trend direction.
Think of it as the three points of a trident:
Trend filter — Only signals with the prevailing trend.
Liquidity sweep — Candle takes out a recent swing high/low (stop-hunt).
Imbalanced retest — Price taps the candle’s open/low (bull) or open/high (bear).
Bullish Setup
Trend Filter: Price above EMA(200).
Impulse Candle:
Green close.
Upper wick ≥ (wickRatio × lower wick).
Lower wick ≤ (oppWickMaxFrac × full range).
Liquidity Sweep: Candle’s high exceeds the highest high of the last sweepLookback bars (excluding current).
Tap Entry: Buy signal triggers when price later taps the candle’s low or open (user choice) within expireBars.
Bearish Setup
Trend Filter: Price below EMA(200).
Impulse Candle:
Red close.
Lower wick ≥ (wickRatio × upper wick).
Upper wick ≤ (oppWickMaxFrac × full range).
Liquidity Sweep: Candle’s low breaks the lowest low of the last sweepLookback bars (excluding current).
Tap Entry: Sell signal triggers when price later taps the candle’s high or open (user choice) within expireBars.
Inputs
Trend EMA Length: Default 200.
Sweep Lookback: Number of bars for liquidity sweep check (default 20).
Wick Ratio: Required size ratio of dominant wick to opposite wick (default 2.0).
Opposite Wick Max %: Opposite wick must be ≤ this fraction of the candle’s range (default 25%).
Tap Tolerance (ticks): How close price must come to the level to count as a tap.
Expire Bars: Max bars after setup to allow a valid tap.
One Signal per Level: If ON, a base is “consumed” after first signal.
Plot Tap Levels: Show horizontal lines for active bases.
Show Setup Labels: Mark the origin sweep candle.
Plots & Visuals
EMA Trend Line — trend filter reference.
Tap Levels —
Green = bullish base (origin candle’s low/open).
Red = bearish base (origin candle’s high/open).
Labels — Show where the setup candle formed.
Signals —
BUY: triangle-up below bar at bullish tap.
SELL: triangle-down above bar at bearish tap.
Alerts
Two built-in conditions:
BUY Signal (Trishul Tap) — triggers on bullish tap.
SELL Signal (Trishul Tap) — triggers on bearish tap.
Set via Alerts panel → Condition = this indicator → Choose signal type.
How to Trade It
Use in liquid markets with clean price structure.
Confirm with HTF structure, volume spikes, or other confluence if desired.
Place stop just beyond the tap level (or ATR-based).
Target 1–2R or trail behind structure.
Why It Works
Liquidity sweep traps traders entering late (breakout buyers or panic sellers) and forces them to exit in the opposite direction, fueling your entry.
Wick imbalance confirms directional aggression by one side.
Trend filter keeps you aligned with the market’s dominant flow.
Retest entry lets you enter at a better price with reduced risk.
Non-Repainting
Setups form only on confirmed bar closes.
Signals trigger only on later bars that tap the stored level.
No lookahead functions are used.
Disclaimer
This script is for educational purposes only and does not constitute financial advice. Test thoroughly in a simulator or demo before using in live markets. Trading involves risk.
Engulfing Pattern[SpeculationLab]Overview
This script detects two types of engulfing / outer bar patterns and marks them directly on the chart:
Body Engulfing – The current candle’s body range (open–close) completely covers the entire range (high–low) of the previous candle.
Range Engulfing – The current candle’s full range (high–low, including wicks) completely covers the entire range (high–low) of the previous candle.
Direction logic:
Bull – The previous candle is bearish and the selected engulfing rule is met.
Bear – The previous candle is bullish and the selected engulfing rule is met.
Optional: Require the current candle to have the opposite color of the previous one.
This is an open-source pattern recognition tool for learning, backtesting, and chart review. It is not financial advice.
Key Features
Two detection modes:
body – Body engulfs previous entire range
range – Wicks engulf previous entire range
Direction detection based on the previous candle’s color, with optional opposite-color confirmation
Chart markers: “BULL” /“BEAR” above bars
Alert-ready: built-in conditions for bullish and bearish engulfing patterns
Parameters
Engulfing Type: body / range
body: Current body must fully cover the previous candle’s high–low range
range: Current full range (high–low) must fully cover the previous candle’s high–low range
Require Opposite Previous Candle (default: off):
When enabled, the engulfing pattern must also have the opposite color from the previous candle to trigger
Usage Tips
Engulfing patterns are price action structures; combine with trend, key levels, and volume for context
Signals confirm on bar close (barstate.isconfirmed) to reduce repainting
Can be used with personal risk management rules (stop-loss, take-profit, filters)
Disclaimer
For educational and research purposes only – not financial advice
Past performance of patterns does not guarantee future results
Trading involves risk; always manage it responsibly
This script is open-source – feel free to learn from or modify it, but credit the original source and author (SpeculationLab)
脚本简介
本脚本用于识别两类包裹/外包形态,并在图表上以标记提示:
Body(实体包裹):当前K线的实体区间(开—收)完全覆盖上一根K线的整个区间(上一根的高—低)。
Range(影线外包):当前K线的影线区间(高—低)完全覆盖上一根K线的整个区间(上一根的高—低)。
方向判定:
Bull(多):上一根为阴线且满足所选包裹规则;
Bear(空):上一根为阳线且满足所选包裹规则;
可选项:要求“当前K线颜色与上一根相反”后再确认(见参数)。
本脚本为开源形态识别工具,适合技术分析学习、回测与复盘,不构成任何投资建议。
主要功能
两种识别模式:body(实体包裹上一根整段) / range(影线包裹上一根整段)。
方向识别:按上一根K线颜色判断多空;可选“当前颜色与上一根相反”的二次确认。
图表提示:plotshape 在K线上方标注 “BULL / BEAR”。
提醒支持:内置 Bullish Engulf / Bearish Engulf 提醒条件。
参数说明
Engulfing Type:body / range
body:当前实体须完全覆盖上一根的高—低整段;
range:当前高—低须完全覆盖上一根的高—低整段。
Require Opposite Previous Candle(默认关闭):
开启后,除满足包裹规则外,还需当前K线颜色与上一根相反才触发标记。
使用建议
包裹/外包是价格行为结构,建议结合趋势、关键价位、成交量等因素综合判断。
信号在收盘时确认(barstate.isconfirmed),以减少重绘干扰。
可与个人风格的风险控制规则(止损、止盈、过滤条件)配合使用。
合规与免责声明
本脚本仅用于技术研究与学习,不构成任何形式的投资建议或收益承诺。
历史形态并不代表未来结果,交易有风险,请自行评估并承担责任。
本脚本开源,欢迎学习与二次开发;转载或改用请注明来源与作者(SpeculationLab / 投机实验室)。
Awesome Indicator# Moving Average Ribbon with ADR% - Complete Trading Indicator
## Overview
The **Moving Average Ribbon with ADR%** is a comprehensive technical analysis indicator that combines multiple analytical tools to provide traders with a complete picture of price trends, volatility, relative performance, and position sizing guidance. This multi-faceted indicator is designed for both swing and positional traders looking for data-driven entry and exit signals.
## Key Components
### 1. Moving Average Ribbon System
- **4 Customizable Moving Averages** with default periods: 13, 21, 55, and 189
- **Multiple MA Types**: SMA, EMA, SMMA (RMA), WMA, VWMA
- **Color-coded visualization** for easy trend identification
- **Flexible configuration** allowing users to modify periods, types, and colors
### 2. Average Daily Range Percentage (ADR%)
- Calculates the average daily volatility as a percentage
- Uses a 20-period simple moving average of (High/Low - 1) * 100
- Helps traders understand the stock's typical daily movement range
- Essential for position sizing and stop-loss placement
### 3. Volume Analysis (Up/Down Ratio)
- Analyzes volume distribution over the last 55 periods
- Calculates the ratio of volume on up days vs down days
- Provides insight into buying vs selling pressure
- Values > 1 indicate more buying volume, < 1 indicate more selling volume
### 4. Absolute Relative Strength (ARS)
- **Dual timeframe analysis** with customizable reference points
- **High ARS**: Performance relative to benchmark from a high reference point (default: Sep 27, 2024)
- **Low ARS**: Performance relative to benchmark from a low reference point (default: Apr 7, 2025)
- Uses NSE:NIFTY as default comparison symbol
- Color-coded display: Green for outperformance, Red for underperformance
### 5. Relative Performance Table
- **5 timeframes**: 1 Week, 1 Month, 3 Months, 6 Months, 1 Year
- Shows stock performance **relative to benchmark index**
- Formula: (Stock Return - Index Return) for each period
- **Color coding**:
- Lime: >5% outperformance
- Yellow: -5% to +5% relative performance
- Red: <-5% underperformance
### 6. Dynamic Position Allocation System
- **6-factor scoring system** based on price vs EMAs (21, 55, 189)
- Evaluates:
- Price above/below each EMA
- EMA alignment (21>55, 55>189, 21>189)
- **Allocation recommendations**:
- 100% allocation: Score = 6 (all bullish signals)
- 75% allocation: Score = 4
- 50% allocation: Score = 2
- 25% allocation: Score = 0
- 0% allocation: Score = -2, -4, -6 (bearish signals)
## Display Tables
### Performance Table (Top Right)
Shows relative performance vs benchmark across multiple timeframes with intuitive color coding for quick assessment.
### Metrics Table (Bottom Right)
Displays key statistics:
- **ADR%**: Average Daily Range percentage
- **U/D**: Up/Down volume ratio
- **Allocation%**: Recommended position size
- **High ARS%**: Relative strength from high reference
- **Low ARS%**: Relative strength from low reference
## How to Use This Indicator
### For Trend Analysis
1. **Moving Average Ribbon**: Look for price above ascending MAs for bullish trends
2. **MA Alignment**: Bullish when shorter MAs are above longer MAs
3. **Color coordination**: Use consistent color scheme for quick visual analysis
### For Entry/Exit Timing
1. **Performance Table**: Enter when showing consistent outperformance across timeframes
2. **Volume Analysis**: Confirm entries with U/D ratio > 1.5 for strong buying
3. **ARS Values**: Look for positive ARS readings for relative strength confirmation
### For Position Sizing
1. **Allocation System**: Use the recommended allocation percentage
2. **ADR% Consideration**: Adjust position size based on volatility
3. **Risk Management**: Lower allocation in high ADR% stocks
### For Risk Management
1. **ADR% for Stop Loss**: Set stops at 1-2x ADR% below entry
2. **Relative Performance**: Reduce positions when consistently underperforming
3. **Volume Confirmation**: Be cautious when U/D ratio deteriorates
## Best Practices
### Timeframe Recommendations
- **Intraday**: Use lower MA periods (5, 13, 21, 55)
- **Swing Trading**: Default settings work well (13, 21, 55, 189)
- **Position Trading**: Consider higher periods (21, 50, 100, 200)
### Market Conditions
- **Trending Markets**: Focus on MA alignment and relative performance
- **Sideways Markets**: Rely more on ADR% for range trading
- **Volatile Markets**: Reduce allocation percentage regardless of signals
### Customization Tips
1. Adjust reference dates for ARS calculation based on significant market events
2. Change comparison symbol to sector-specific indices for better relative analysis
3. Modify MA periods based on your trading style and market characteristics
## Technical Specifications
- **Version**: Pine Script v6
- **Overlay**: Yes (plots on price chart)
- **Real-time Updates**: Yes
- **Data Requirements**: Minimum 252 bars for complete calculations
- **Compatible Timeframes**: All standard timeframes
## Limitations
- Performance calculations require sufficient historical data
- ARS calculations depend on selected reference dates
- Volume analysis may be less reliable in low-volume stocks
- Relative performance is only as good as the chosen benchmark
This indicator is designed to provide a comprehensive analysis framework rather than simple buy/sell signals. It's recommended to use this in conjunction with your overall trading strategy and risk management rules.
Prev D/W/M + Asia & London Levels [Oeditrades]Prev D/W/M + Asia & London Levels
Author: Oeditrades
Platform: Pine Script® v6
What it does
Plots only the most recent, fully completed:
Previous Day / Week / Month highs & lows
Asia and London session highs & lows
Levels are drawn as true horizontal lines from the period/session start and extended to the right for easy confluence reading. The script is non-repainting.
How it works
Prev Day/Week/Month: Uses completed HTF candles (high / low ) so values are fixed for the entire next period.
Sessions (NY time): Asia (default 20:00–03:00) and London (default 03:00–08:00) are tracked in America/New_York time. High/low are locked when the session ends, and the line is anchored at that session’s start.
Inputs & customization
Visibility: toggle Previous Day/Week/Month, Asia, London, and labels.
Colors: highs default red; lows default green (user-configurable). Session highs default pink, lows aqua (also editable).
Style: line style (solid/dotted/dashed) and width.
Sessions: editable time windows for Asia and London (still interpreted in New York time).
Disclaimer: optional on-chart disclaimer panel with editable text.
Notes
Works on any timeframe. For intraday charts, the HTF values remain constant until the next HTF bar completes.
If your market’s overnight hours differ, simply adjust the session windows in Inputs.
Lines intentionally show only the latest completed period/session to keep charts clean.
Use cases
Quick view of PDH/PDL, PWH/PWL, PMH/PML for bias and liquidity.
Intraday planning around Asia/London range breaks, retests, and overlaps with prior levels.
Disclaimer
This tool is for educational purposes only and is not financial advice. Markets involve risk; past performance does not guarantee future results.